/**************************
方法一: 对边权重取反，转化为求无环无向图的最短路径问题
    1)计算图的拓补排序
    2)对边权重取反
    3)按照拓补排序对结点的邻接边进行松弛
方法二：采用动态规划。
    初始:
        dp[s][t][1] = {
            w[s][t], s!=t //-1表示不可达
            0, s==t
        }
    递推：
    dp[s][t][2k] = {
        max{dp[s][r][k]+dp[r][t][k]}, dp[s][r][k]>=0 && dp[r][t][k]>=0
        -1, 其他情况
    }, k=1, 2, 4...2**up(log(2, n))
***************************/


